﻿using ITSM.Model.Entity;
using ITSM.Model.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ITSM.Service
{
    public interface IDemandType
    {

        /// <summary>
        /// 根据公司编号，获取对应公司的事件类别，默认获取未删除的，没有负责人的类别不显示
        /// </summary>
        /// <param name="RYD_Company">公司编号，RESZ|REXF</param>
        /// <returns></returns>
        List<RYD_DemandType> GetDemandTypes(string RYD_Company);
        /// <summary>
        /// 获取所有事件类别，默认获取未删除的
        /// </summary>
        /// <returns></returns>
        List<RYD_DemandType> QueryDemandType();

        /// <summary>
        /// 根据公司编号，获取对应公司的事件类别，默认获取未删除的
        /// </summary>
        /// <param name="RYD_Company">公司编号，RESZ|REXF</param>
        /// <returns></returns>
        List<RYD_DemandType> QueryDemandType(string RYD_Company);

        /// <summary>
        /// 根据数据状态获取事件类别，不分公司，状态为1的为未删除，状态为2的为已删除
        /// </summary>
        /// <param name="RYD_IsDelete">是否删除1(正常)|2(删除)</param>
        /// <returns></returns>
        List<RYD_DemandType> QueryDemandType(int RYD_IsDelete);

        /// <summary>
        /// 根据公司编号和数据状态获取事件类别
        /// </summary>
        /// <param name="RYD_Company">公司编号</param>
        /// <param name="RYD_IsDelete">数据状态</param>
        /// <returns></returns>
        List<RYD_DemandType> QueryDemandType(string RYD_Company,int RYD_IsDelete);

        /// <summary>
        /// 根据事件类别编号获取指定类别
        /// </summary>
        /// <param name="RYD_DemandTypeNo">类别编号</param>
        /// <returns></returns>
        RYD_DemandType GetDemandType(string RYD_DemandTypeNo);

        /// <summary>
        /// 删除指定类别（状态删除）
        /// </summary>
        /// <param name="typeLink"></param>
        /// <returns></returns>
        bool DeleteDemandType(RYD_DemandTypeLink typeLink);
        /// <summary>
        /// 添加指定类别
        /// </summary>
        /// <param name="typeLink"></param>
        /// <returns></returns>
        int AddDemandType(M_DemandType typeLink);
    }
}
